package java.atguigu;

import java.util.Arrays;

public class MyArrayList {
    private static final int DEFAULT_SIZE=10;
    public int[] elem;
    public int usedSize;
    public MyArrayList(){
        this.elem=new int[DEFAULT_SIZE];
    }
    //打印
    public void display(){
        for(int i=0;i<usedSize;i++){
            if(i==usedSize-1){
                System.out.print(elem[i]);
            }
            System.out.print(elem[i]+",");
        }
    }
    //增加元素
    public void add(int num){
        //扩容问题
        if(isFull()) {
            elem= Arrays.copyOf(elem, 2*elem.length);
        }
        elem[usedSize]=num;
        usedSize++;
    }
    //判断是否已满
    public boolean isFull(){
        return usedSize==elem.length;
    }
    //在指定位置添加元素
    public void add(int pos,int data){
        if(isFull()){
            elem=Arrays.copyOf(elem,2*elem.length);
        }
        for(int i=usedSize-1;i>=pos;i--){
            elem[i+1]=elem[i];
        }
        elem[pos]=data;
        usedSize++;
    }
    public boolean contains(int toFind){
        for(int i=0;i<usedSize;i++){
            if(elem[i]==toFind){
                return true;
            }
        }
        return false;
    }
    public int indexOf(int toFind){
        for(int i=0;i<usedSize;i++){
            if(elem[i]==toFind){
                return i;
            }
        }
        return -1;
    }
    //获取pos位置的元素
    public int get(int pos){
        return elem[pos];
    }
    //判断是否为空
    public boolean isEmpty(){
        return usedSize==0;
    }
    //设置值
    public void set(int pos,int value){
        elem[pos]=value;
    }
    //删除第一次出现的关键字key
    public void remove(int key){
        int pos=indexOf(key);
        for(int i=pos;i<usedSize;i++){
            elem[pos]=elem[pos+1];
        }
    }
    public int size(){
        return usedSize;
    }
    public void clear(){
        usedSize=0;
    }
}
